avatar

深度学习知识系列(三) 卷积网络模型介绍

1、LeNet

在这里插入图片描述

    LeNet 诞生于 1994 年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。这篇文章对之后的发展具有开创意义。在那个没有GPU加速的年代,LeNet设计简单,这也就使其处理复杂数据的能力有限。


2、AlexNet

在这里插入图片描述

    12年AlexNet诞生,并在ImageNet上取得了第一名的成绩,在测试集上的top-1和top-5错误率为37.5%和17.0%。

    在当时,算力仍然不足。作者利用了两个GPU联合训练。也就是将一个模型的参数分布在了两个GPU上,训练出来的AlexNet。这是卷积网络辉煌的开始。

    使用了ReLU函数,一定程度上减小了梯度弥散问题,同时加快了训练速度。

    重叠池化(Overlapping Pooling),在相邻池化窗口之间有重叠部分,这使他们的top-1和top-5错误率分别降低了0.4%和0.3%。

    使用了0.5的dropoutbatch size设为128Momentum设为0.9学习率0.1、L2 weight decay为5e-4,共使用了7层CNN


3、VGG

在这里插入图片描述

    14年VGG诞生,在ImageNet上取得了第二名的成绩

    VGG的思想,使纵向加深网络,显著的增加了网络层数,16层CNN

    大大的减少了kernel size,大量的使用3x3的卷积核,因为多个小的滤波器的组合与一个大的滤波器的感受野差不多,但能够大大的减少训练参数

    但VGG过大的网络造成了需要极其庞大的训练资源(全连接层参数过多),训练较慢,而且整个模型极大,有144M。


4、GoogLeNet

在这里插入图片描述

    14年GoogLeNet诞生,在ImageNet上取得了第一名的成绩

    与VGG不同,GoogLeNet使横向的加深网络,提出了Inception结构

在这里插入图片描述

    在Inception模块中

  • 提供更“宽”的网络结构(1x1 3x3 5x5 ),使网络可自由选择更好的特征,maxpooling则是去掉上一层卷积下来的冗余信息。
  • 通过1x1的卷积核,实现降维和升维,达到减少参数的目的,其中,降维是利用了1x1的卷积核可线性组合不同通道上的特征的特性。(这与稀疏网络结构也密切相关)

        GoogLeNet通过使用Inception结构,极大的减少了模型的大小。


5、ResNet

在这里插入图片描述

    15年ResNet诞生,在ImageNet上取得了第一名的成绩

    ResNet通过实验得到,像VGG那样简单的堆叠不能够提高网络的性能,于是提出了残差模块

在这里插入图片描述

    当网络不断加深时,梯度爆炸与梯度弥散的问题将会出现,而残差模块的引入,通过将以后层的梯度与前面的层相联系,而解决了这一问题,这使得网络的训练变得很容易。

    有了残差模块之后,一般网络的层数越高,性能越好,当然训练也会变得越难。

    残差模块的作用就是feature重用,将前面层的简单的feature与后面层的高维的feature进行联系。

    ResNet的内存占用也很小,Res-164只有1.7M。

    ResNet也是在之后学习生涯中最常用的backbone之一。


6、ResNeXt

    16年ResNeXt诞生,其是ResNet与GoogLeNet的变体。即在Inception模块上加入了残差模块。

在这里插入图片描述


7、DenseNet

在这里插入图片描述

    17年的DenseNet时ResNet的拓展,将残差模块拓展到了Dense block,即一个Dense模块的每一部分都进行连接。

在这里插入图片描述

    这一举看似粗暴,实则带来不少好处。从 feature 来考虑,每一层 feature 被用到时,都可以被看作做了新的 normalization。DenseNet的模型会更加robust。

    天底下没有免费的午餐,DenseNet这一操作也是其模型变得机器庞大,Dnese-100-24有27.2M。


8、SeNet

    17年SeNet诞生,在ImageNet上取得了第一名的成绩

    其创新点在于其SE block

在这里插入图片描述

    图中的Ftr是传统的卷积结构,X和U是Ftr的输入(C’xH’xW’)和输出(CxHxW),这些都是以往结构中已存在的。SENet增加的部分是U后的结构:对U先做一个Global Average Pooling(图中的Fsq(.),作者称为Squeeze过程),输出的1x1xC数据再经过两级全连接(图中的Fex(.),作者称为Excitation过程),最后用sigmoid(论文中的self-gating mechanism)限制到[0,1]的范围,把这个值作为scale乘到U的C个通道上, 作为下一级的输入数据。这种结构的原理是想通过控制scale的大小,把重要的特征增强,不重要的特征减弱,从而让提取的特征指向性更强。

文章作者: 白丁
文章链接: http://baidinghub.github.io/2020/04/03/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%9F%A5%E8%AF%86%E7%B3%BB%E5%88%97(%E4%B8%89)%20%E5%8D%B7%E7%A7%AF%E7%BD%91%E7%BB%9C%E6%A8%A1%E5%9E%8B%E4%BB%8B%E7%BB%8D/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BaiDing's blog
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论